﻿#include <iostream>


using namespace std;


/*
https://www.papamelon.com/problem/360


岛上有 N 个城镇，从 1∼N 编号。
一开始，我们位于 1 号城镇。
城镇之间有水路或者陆路相连，所有路都是双向的，两个城镇之间可能有多条路。
道路信息：
x y t sl
x, y 表示城镇编号
t 表示走完这条路需要花费的时间
sl 是字符串，"L" 表示陆路，"S" 表示水路
走水路必须用船，岛上只有一条船，当我们利用船从 A 来到 B，船会停在 B，以后要用船，必须重新回到 B 来取。

一开始船停在 1 号城镇。
给定一个城镇列表，例如：1,2,3,2,3，表示让我们依次访问 1,2,3,2,3 号城镇。
现在让我们计算，按顺序访问列表中的城镇，最少需要多少时间。
按顺序走完列表中的城镇后，船可以停在任何地方，不必回到 1 号城镇。
测试数据保证一定能走完整个城市列表。

输入
多组测试数据，每组测试数据格式如下
第一行两个整数 N(2≤N≤200),M(1≤M≤10000)，分别表示城镇数量和道路数量
接下来 M 行，每行是一条道路的信息，x,y,t,sl,(1≤x,y≤N,1≤t≤1000)
接下来一行一个整数 R，表示要访问多少个城市
最后一行，R(1≤R≤1000) 个整数，用空格分隔，表示要访问的城市编号
当 N=0,M=0 时表示输入结束
输出
每组测试数据输出一行，表示访问所有列表中的城市的最小耗时
样例 1
输入
3 3
1 2 5 L
1 2 7 S
2 3 11 S
3
1 2 3
5 5
1 2 15 L
2 3 10 L
4 5 7 L
1 3 30 S
3 4 100 S
5
1 3 5 4 1
0 0
输出
18
269
*/

int main()
{
    std::cout << "Hello World!\n";
}

